/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Asignaciones;

import Entidades.Asignacionperiodocatedratico;
import Entidades.Controlcatedraticos;
import Entidades.Estado;
import Entidades.Horariocatedratico;
import Entidades.Periodo;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 * @author Isaac Cifuentes <isaaccivan@gmail.com>
 */
public class HorarioCatedratico {
     SimpleDateFormat formateador = new SimpleDateFormat("hh:mm");//permite mostrar solo la hora y los minutos
  //Variables para catedratico
    Horariocatedratico diacatedratico;
    Asignacionperiodocatedratico diasperiodosCat;
    Controlcatedraticos controlcatedratico=null;
     //variables que se pueden usar para catedraticos y aulas
    Periodo misperidosdeldia;//un periodo
    Estado estadoActual;
    /**
     * *
     * Variables para los nombres
     */
    String npInicio = "";
    String npFinal = "";
    String ncomentario = "";
    String nFecha = "";
    String nestado = "";
    String nombredia;//nombre del dia;
    
    /**
     * *
     * @autor Isaac Cifuentes <isaaccivan@gmail.com>
     * @param el dia dia
     * @param el periodo
     */
    public HorarioCatedratico(Horariocatedratico dia, Periodo p) {
        this.diacatedratico = dia;
        this.misperidosdeldia = p;
        //CrearHorarioCat();

    }
    /**
     * *
     * @autor Isaac Cifuentes <isaaccivan@gmail.com>
     * @param el dia dia
     * @param el periodo
     */
    public HorarioCatedratico(Horariocatedratico dia, Periodo p, Controlcatedraticos controles) {
        this.diacatedratico = dia;
        this.misperidosdeldia = p;
        this.controlcatedratico=controles;
        CrearHorarioCat();

    }
    
    public void CrearHorarioCat() {
     this.nombredia = this.diacatedratico.getDia();
        this.npInicio=formatoAmigable(this.misperidosdeldia.getHoraInicio());
        this.npFinal = formatoAmigable(this.misperidosdeldia.getHoraFin());
              if (controlcatedratico != null) {
            this.nFecha = this.controlcatedratico.getFecha().toString();
            //this.ncomentario = this.controlcatedratico.getCometario();
            this.estadoActual=controlcatedratico.getEstadoidEstado();
            this.nestado = this.estadoActual.getNombre();
           }    
    
   
    }


    public String getNcomentario() {
        return ncomentario;
    }

    public String getNestado() {
        return nestado;
    }

    public String getNombredia() {
        return nombredia;
    }

    public String getNpFinal() {
        return npFinal;
    }

    public String getNpInicio() {
        return npInicio;
    }

    public String getnFecha() {
        return nFecha;
    }

    public void setDiasperiodosCat(Asignacionperiodocatedratico diasperiodosCat) {
        this.diasperiodosCat = diasperiodosCat;
    }

    public Asignacionperiodocatedratico getDiasperiodosCat() {
        return diasperiodosCat;
    }

    public void setEstadoActual(Estado estadoActual) {
        this.estadoActual = estadoActual;
    }

    public Estado getEstadoActual() {
        return estadoActual;
    }

    public void setControlcatedratico(Controlcatedraticos controlcatedratico) {
        this.controlcatedratico = controlcatedratico;
    }

    public Controlcatedraticos getControlcatedratico() {
        return controlcatedratico;
    }
   
    
    
    
    
      /**
     * *
     * Metodod auxiliar que permite imprimir el horario actual
     *
     * @return
     */
    public String imprimir() {
        return this.nombredia + " " + this.npInicio + " " + this.npFinal + " " + this.nFecha + " " + this.ncomentario + " " + this.nestado;

    }
   /***
    * Metodo para mejorar la visibilidad del campo date
    * @param la fehca a la que le queremos dar formato 
    * @return un string con formato hh:mm
    */
    public String formatoAmigable(Date fecha){
   return formateador.format(fecha); 
      }

}
